import { ls } from '@/utils';
import { Gender } from '@/types/enum';
import { getMemberInfo, memberPersonalCenter } from '@/api/master/user';
import { orderMessageStatistics } from '@/api/common';

// 雇主信息
export const masterInfo = {
	// 昵称
	nickName: '',
	// 手机号
	phonenumber: '',
	// 头像
	avatar: '',
	// 生日
	birthday: '',
	// 性别
	sex: Gender.Other,
	
	// 待支付数量
	notPayCount: 0,
	// 待派单数量
	serviceCount: 0,
	// 待确认数量
	notCnfirmCount: 0,
	// 待评价数量
	notEvaluateCount: 0,
	// 待售后数量
	afterSalesCount: 0,
	// 收藏数量
	collectCount: 0,
	// 地址数量
	addressCount: 0,
	
	// 家政工Id
	housekeeperId: 0,
};

const master = {
	state: () => ({
		// 雇主信息
		masterInfo: ls.get('masterInfo') || masterInfo,
		// 服务地址
		addressList: ls.get('addressList') || [],
		// 搜索历史
		searchHistory: ls.get('searchHistory') || [],
		// 雇主消息数量
		masterMessage: ls.get('masterMessage') || {
			// 公告数量
			notice: 0,
			// 活动数量
			activity: 0,
			// 订单数量
			order: 0,
		},
		// 全部服务页面参数
		serviceQuery: {
			// 一级服务分类ID
			parentId: 0,
			// 二级服务分类ID
			childId: 0,
		},
	}),
	mutations: {
		/* 设置雇主信息 */
		SET_MASTER_INFO(state, masterInfo) {
			const data = { ...state.masterInfo, ...masterInfo };
			state.masterInfo = data;
			ls.set('masterInfo', data);
		},
		// 设置地址列表
		SET_ADDRESS_LIST(state, list) {
			state.addressList = list;
			ls.set('addressList', list);
		},
		// 设置搜索历史
		SET_SEARCH_HISTORY(state, searchHistory: Array<string>) {
			state.searchHistory = searchHistory;
			ls.set('searchHistory', searchHistory);
		},
		// 设置消息数量
		SET_MASTER_MESSAGE(state, masterMessage) {
			state.masterMessage = masterMessage;
			ls.set('masterMessage', masterMessage);
		},
		// 设置全部服务页面参数
		SET_SERVICE_QUERY(state, query) {
			state.serviceQuery = query;
		},
	},
	actions: {
		// 设置基础信息
		async SET_MASTER_INFO(context) {
			const { code, member } = await getMemberInfo();
			if (code === 200) {
				context.commit('SET_MASTER_INFO', member);
				return member;
			}
		},
		// 设置数量
		async SET_MASTER_COUNT(context) {
			const { code, data } = await memberPersonalCenter();
			if (code === 200) {
				context.commit('SET_MASTER_INFO', data);
			}
		},
		// 设置地址
		SET_ADDRESS_LIST(context) {
			
		},
		// 设置消息数量
		async SET_MASTER_MESSAGE(context, message?: any) {
			const result = await orderMessageStatistics({ scene: 0 });
			context.commit('SET_MASTER_MESSAGE', {
				...message,
				order: result.data.unreadCount,
			});
		},
	}
};

export default master;